package cn.mothin.action.system;

import org.springframework.beans.factory.annotation.Autowired;

import cn.mothin.frame.core.annotation.Module;
import cn.mothin.frame.core.annotation.NeedModule;
import cn.mothin.frame.core.annotation.NeedPermission;
import cn.mothin.frame.core.annotation.NeedPermissionAs;
import cn.mothin.frame.core.annotation.NeedPermissionTemplate;
import cn.mothin.frame.core.annotation.OperationLink;
import cn.mothin.frame.core.base.BaseAction;
import cn.mothin.service.system.ConfigService;
import cn.mothin.vo.system.ConfigForm;

/**
 *
 *@author 张权
 */
@SuppressWarnings("serial")
@Module(id="54125a5ac5b2d3b81b35071f",name="配置管理")
public class ConfigAction extends BaseAction {
	private ConfigForm configForm = new ConfigForm();
	
	@Autowired
	private ConfigService configService = new ConfigService();
	
	@Override
	public Object getModel(){
		return configForm;
	}
	
	/**
	 * 配置管理主页面
	 */
	@NeedModule
	public String execute(){
		return SUCCESS;
	}
	
	/**
	 * 查询配置列表信息
	 * @return
	 */
	@NeedModule
	public String queryTypes(){
		return this.renderJson(configService.query(configForm));
	}
	
	/**
	 * 返回添加配置类型页面
	 * @return
	 */
	//@OperationLink(link="execute")
	@NeedPermissionTemplate(id="54103e98ce6a0db16c2bed2e",template=NeedPermissionTemplate.CREATE)
	public String addType() {
		return "add_type";
	}
	
	/**
	 * 保存添加的配置类型
	 * @return
	 */
	@NeedPermissionAs("addType")
	public String saveForAddType() {
		return renderJson(configService.addSystemConfigType(configForm).toJson());
	}
	
	
	/**
	 * 修改系统配置类型
	 * 
	 * @return
	 */
	//@OperationLink(link="execute",ordinal=1,rowOperation=true)
	@NeedPermissionTemplate(id ="54106df45bd455adba923c09", template = NeedPermissionTemplate.UPDATE)
	public String updateType() {
		 int result = configService.queryTypeById(configForm);
			if(result == 0) {
				return "update_type";
			} else if(result == 1) {
				setLastError("该字典类型不存在！");
				return ERROR;
			}
			return ERROR;
	}
	
	/**
	 * 保存修改的系统配置分类
	 * 
	 * @return
	 */
	@NeedPermissionAs("updateType")
	public String saveForUpdateType() {
		return renderJson(configService.updateSystemConfigType(configForm).toJson());
	}
	
	/**
	 * 删除系统配置类型
	 * @return
	 */
	//@OperationLink(link="execute",ordinal=2,rowOperation=true)
	@NeedPermissionTemplate(id = "54124b96c5b2d3b81b35071a", template = NeedPermissionTemplate.DELETE)
	public String deleteType() {
			return renderJson(configService.deleteSystemConfigType(configForm).toJson());
	}
	

	/**
	 * 返回系统配置详细
	 * 
	 * @return
	 */
	//@OperationLink(link="execute",ordinal=0,rowOperation=true)
	@NeedPermissionTemplate(id ="54124e48c5b2d3b81b35071b", template = NeedPermissionTemplate.DETAIL)
	public String detail() {
		return "detail";
	}	
	
	/**
	 * 查看系统配置详细
	 * 
	 * @return
	 */
	@NeedPermissionAs("detail")
	public String queryDetail() {
		return renderJson(configService.queryConfigDetail(configForm));
	}
	
	/**
	 * 返回添加系统配置详细页面
	 */
	@OperationLink(link="detail")
	@NeedPermissionTemplate(id = "54124f7bc5b2d3b81b35071c", template = NeedPermissionTemplate.CREATE)
	public String addDetail() {
		return "add_detail";
	}
	
	/**
	 * 保存添加的系统配置详细
	 * 
	 * @return
	 */
	@NeedPermissionAs("addDetail")
	public String saveForAddDetail() {
		return renderJson(configService.addSystemConfigDetail(configForm).toJson());
	}
	
	/**
	 * 返回系统配置详细页面
	 * 
	 * @return
	 */
	@OperationLink(link="detail",ordinal=0,rowOperation=true)
	@NeedPermissionTemplate(id = "5412519dc5b2d3b81b35071d" , template = NeedPermissionTemplate.UPDATE)
	public String updateDetail() {
		int result = configService.queryDetailById(configForm);
		if(result == 0) {
			return "update_detail";
		} else if(result == 1) {
			setLastError("该配置详细类型不存在！");
			return ERROR;
		}
		return ERROR;
	}
	
	/**
	 * 保存系统配置详细修改
	 * 
	 * @return
	 */
	@NeedPermissionAs("updateDetail")
	public String saveForUpdateDetail() {
		return renderJson(configService.updateSystemConfigDetail(configForm).toJson());
	}
	
	/**
	 * 删除系统配置详细
	 * @return 
	 */
	@OperationLink(link="detail",ordinal=1,rowOperation=true)
	@NeedPermissionTemplate(id = "5412538bc5b2d3b81b35071e", template = NeedPermissionTemplate.DELETE)
	public String deleteDetail() {
		return renderJson(configService.deleteSystemConfigDetail(configForm).toJson());
	}

	/**
	 * 查找配置类型
	 * @return
	 */
	@NeedModule
	public String queryType() {
		return renderJson(configService.queryType(configForm));
	}
	
	/**
	 * 查找类型中所有配置
	 * @return
	 */
	@NeedModule
	public String query() {
		return renderJson(configService.queryDate(configForm));
	}
	
	/**
	 * 修改准备
	 * @return
	 */
	@OperationLink(link="execute",ordinal=0,rowOperation=true)
	@NeedPermission(id="54168271a6219c48714cecfb",name="配置")
	public String update(){
		int result=configService.queryById(configForm);
		if (result == 1) {
			return ERROR;
		}
		if (result == 2) {
			return ERROR;
		}
		return "update";
	}
	
	@NeedPermissionAs("update")
	public String saveForUpdate() {
		return renderJson(configService.update(configForm).toJson());
	}
}
